package br.com.sebrae.pr.sgp.util.persistence;

import java.sql.ResultSet;

/**
 * Interface para conversão do resultado da execução de uma query qualquer em um objeto do tipo desejado.
 * 
 * @author Tanaka
 * 
 * @param <T>
 *            tipo do objeto de retorno da conversão
 */
public interface IConverter<T> {

    /**
     * Chamado logo após a obtenção do {@link ResultSet} de uma query. Cada linha retornada é convertida em um {@link ItemResultset} e em
     * seguida este método é acionado, devendo instanciar, popular e retornar um <T>, obtendo os valores do {@link ItemResultset}
     * 
     * @see ItemResultset
     * 
     * @param reg
     *            valores obtidos do resultset referentes às colunas de cada linha
     * @return <T> populado conforme desejado
     */
    public T convert(final ItemResultset reg);

}
